#include "poligono.h"

poligono::poligono(QList<Grupo> g): grupos(g)
{
    srand(time(NULL));
    cores_disponiveis[0] = Point("0 0 1");
    cores_disponiveis[1] = Point("0 1 0");
    cores_disponiveis[2] = Point("0 1 1");
    cores_disponiveis[3] = Point("1 0 0");
    cores_disponiveis[4] = Point("1 0 1");
    cores_disponiveis[5] = Point("1 1 0");
    cores_disponiveis[6] = Point("0 0 0");
    cores_disponiveis[7] = Point("0.5 0.5 0.5");
    cores_disponiveis[8] = Point("0.5 0 0");
    cores_disponiveis[9] = Point("0 0 0.5");
    int cor_contador = rand() % 10;

    for (int i=0 ; i< grupos.size() ; i++)
    {
        cores.append(cores_disponiveis[cor_contador]);
        cor_contador++;
        if (cor_contador > 9) cor_contador = 0;
    }
}
void poligono::draw()
{
    glColor3f(0.7, 0.5, 1.0);
    //define tamanho dos pontos
    GLfloat actualPointSize = 5.0;
    glPointSize(actualPointSize);

    glBegin(GL_POINTS);
    for(int j=0;j<grupos.size();j++)
    {
        //float color = (rand() % 10 + 1)/10.0;
        glColor3f(cores[j](0),cores[j](1),cores[j](2));
        for(int i=0;i<grupos[j].get_pontos().size();i++)
            glVertex2f(grupos[j].get_pontos().at(i)(0),grupos[j].get_pontos().at(i)(1));
    }
    glEnd();
}
